草庐IT

AndroidJUnit4 和参数化测试

全部标签

ruby-on-rails - 如何使用 RSpec 测试 `rand()`?

我有一个方法可以做这样的事情:defsome_methodchance=rand(4)ifchance==1do#logichereelse#anotherlogichereendend当我用RSpec测试这个方法时,里面的rand(4)总是生成0。我不是在测试Rails的rand方法,我是在测试我的方法.测试我的方法的常见做法是什么? 最佳答案 我会考虑两种方法:方法1:在before:eachblock中使用srand(seed)中已知的种子值:before:eachdosrand(67809)end这适用于所有Ruby版本,并

ruby-on-rails - rspec 路由测试和主机

我看到我可以像这样用rspec测试路由:get("/").shouldroute_to("welcome#index")但我有基于主机名或部分主机名的约束,并在多个主机名之间重定向。测试时如何指定主机名?如何使用正确的配置运行测试?我尝试打印root_url并得到:Missinghosttolinkto!Pleaseprovidethe:hostparameter,setdefault_url_options[:host],orset:only_pathtotrue 最佳答案 同样的错误发生在我每次运行rspecspec/整个错误实

ruby-on-rails - 如果我调用 Factory.build 以使我的 Controller 测试快速,我怎样才能让 Factory Girl 永远不会访问数据库?

我正在寻求使我的Rails测试更快。我只有520个测试,但它们在bash中运行需要62秒,在Rubymine中运行需要82秒。作为典型Controller测试的示例,我使用此代码以@user身份登录并在CommentsController中为我的RSpecController测试创建基本的@comment:before(:each)do@user=Factory.create(:user)sign_in@user@comment=Factory.create(:comment)end您可能会意识到...这很慢。它构建了一个@user,但也为该用户构建了关联。@comment也是如此。所

ruby - 如何清除 ruby​​ 中 rspec 测试之间的类变量

我有以下类(class):我想确保类url只为所有实例设置一次。classDataFactory@@url=nildefinitialize()beginif@@url.nil?Rails.logger.debug"Settingurl"@@url=MY_CONFIG["myvalue"]endrescueExceptionraiseDataFactoryError,"Error!"endendend我有两个测试:it"shouldlogamessage"doAPP_CONFIG={"myvalue"=>"test"}Rails.stub(:logger).and_return(log

ruby-on-rails - 如何在 rspec 功能测试中访问(设计)current_user?

在设计文档中,他们提供了有关在测试Controller时如何访问current_user的提示:https://github.com/plataformatec/devise/wiki/How-To:-Test-controllers-with-Rails-3-and-4-%28and-RSpec%29但是,在进行功能测试时呢?我正在尝试测试我的一个Controller的创建方法,并且在该Controller中使用了current_user变量。问题是devise中建议的宏使用了@request变量,并且对于功能规范来说它是nil。什么是解决方法?编辑:这是我目前的规范:feature

ruby-on-rails - Cucumber 是否不需要编写单元测试?

我对可用于Ruby/ROR的测试框架的数量感到有点困惑。我最近看了CucumberRailscasts并发现它们非常有趣。所以我开始玩游戏,然后努力从概念上看我应该在哪里进行各种测试。似乎很有可能在Cucumber中完成所有可以在单元测试中完成的事情,所以我是否需要编写单元测试,或者我应该只编写我的功能定义并专注于提供尽可能好的覆盖范围开始使用它。我应该使用Rspec还是Test:Unit创建我的单元测试?当我测试Ajax功能时,我应该使用Selenium还是Watir?这里似乎有太多选择,我正在努力寻找使用哪些工具以及边界在哪里。其他人对Cucumber的体验是什么,以及在编写Cuc

ruby - 如何制作可选的强参数键但过滤嵌套参数?

我的Controller里有这个:params.require(:item).permit!让我们假设这个rspec规范,它按预期工作:put:update,id:@item.id,item:{name:"newname"}但是,以下原因会导致ActionController::ParameterMissing:put:update,id:@item.id,item:nil它与我用于其他操作的Controller宏有关,我无法通过它控制发送的参数(宏检查用户凭据,所以我真的不关心实际测试#update操作,而我只是为它测试before_filters)。所以我的问题是:如何使param

ruby-on-rails - Rails 3 - 在更新之前使用参数检查对象是否有效

我有一个新手问题。我如何在更新模型对象之前使用新参数检查模型对象是否有效?我想改变它:defupdate@obj=SomeModel.find(params[:id])if@obj.update_attributes(params[:obj])#Thathavebeenupdatedelse#Ups,errors!endend类似的东西:defupdate@obj=SomeModel.find(params[:id])if@obj.valid_with_new_params(params[:obj])@obj.update_attributes(params[:obj])else#Up

ruby-on-rails - Rails 中的 A/B 拆分测试有哪些资源?

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。关于A/B拆分测试的一些信息:http://startuplessonslearned.blogspot.com/2008/09/one-line-split-test-or-how-to-ab-all.htmlhttp://www.37signals.com/svn/posts/1525-writing-decisions-headline-tests

ruby - 如何获取 Sinatra 应用程序中的所有 URL 参数

使用以下Sinatra应用get'/app'docontent_type:json{"params"=>params}.to_jsonend调用:/app?param1=one¶m2=two¶m2=alt给出以下结果:{"params":{"param1":"one","param2":"alt"}}Params只有两个键,param1和param2。我知道Sinatra将参数设置为散列,但它并不代表所有的URL请求。在Sinatra中有没有办法获取请求中发送的所有URL参数的列表? 最佳答案 机架中的任何请求get